.TH std::ranges::join_view::iterator::iterator 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::join_view::iterator::iterator \- std::ranges::join_view::iterator::iterator

.SH Synopsis
   /*iterator*/() requires std::default_initializable<OuterIter> &&         \fB(1)\fP (since
                           std::default_initializable<InnerIter> = default;     C++20)
   constexpr /*iterator*/( Parent& parent, OuterIter outer );               \fB(2)\fP (since
                                                                                C++20)
   constexpr /*iterator*/( /*iterator*/<!Const> i )

     requires Const &&                                                      \fB(3)\fP (since
              std::convertible_to<ranges::iterator_t<V>, OuterIter> &&          C++20)

              std::convertible_to<ranges::iterator_t<InnerRng>, InnerIter>;

   Construct an iterator.

   1) Default constructor. Value-initializes the underlying iterators, and initializes
   the pointer to parent ranges::join_view with nullptr.
   2) Initializes the underlying outer_ iterator with std::move(outer), and the pointer
   to parent parent_ with std::addressof(parent); then calls satisfy().
   3) Conversion from /*iterator*/<false> to /*iterator*/<true>. Move constructs the
   underlying iterators outer_ with std::move(i.outer_), inner_ with
   std::move(i.inner_), and underlying pointer to parent parent_ with i.parent_.

.SH Parameters

   parent - a (possibly const-qualified) ranges::join_view
   outer  - an iterator into (possibly const-qualified) ranges::iterator_t<Base>
   i      - an /*iterator*/<false>

.SH Example

    This section is incomplete
    Reason: no example

.SH Category:
     * Todo no example
